home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / TextEdit.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  30.4 KB  |  829 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        TextEdit.mod
  3.  
  4.      Contains:    TextEdit Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$IF UNDEFINED OLDROUTINENAMES*)
  21. (*$SET OLDROUTINENAMES FALSE*)
  22. (*$END*)
  23. (*$TAGS-*)
  24. (*$CALLING PASCAL*)
  25. MODULE TextEdit;
  26.  
  27. IMPORT SYSTEM, Types, Quickdraw;
  28.  
  29. (* $PUSH*)
  30. (* $ALIGN MAC68K*)
  31. (* $LibExport+*)
  32.     
  33. TYPE
  34.     TEPtr* = POINTER TO TERec;
  35.     TEHandle* = HANDLE TO TERec (*ΔΔ POINTER TO TEPtr*);
  36.  
  37. (* 
  38.     Important note about TEClickLoopProcPtr and WordBreakProcPtr
  39.  
  40.     At one point these were defined as returning the function result in the 
  41.     condition code Z-bit.  This was correct, in that it was what the 68K
  42.     implementation of TextEdit actually tested.  But, MixedMode had a different 
  43.     idea of what returning a boolean in the Z-bit meant.  MixedMode was setting
  44.     the Z-bit the complement of what was wanted.  
  45.     
  46.     Therefore, these ProcPtrs have been changed (back) to return the result in
  47.     register D0.  It turns out that for register based routines, 
  48.     MixedMode sets the Z-bit of the 68K emulator based on the contents 
  49.     of the return result register.  Thus we can get the Z-bit set correctly.  
  50.     
  51.     But, when TextEdit is recoded in PowerPC, if it calls a 68K ClickLoop
  52.     or WordBreak routine, register D0 had better have the result (in addition
  53.     to the Z-bit). Therefore all 68K apps should make sure their ClickLoop or
  54.     WordBreak routines set register D0 at the end.
  55. *)
  56. (*
  57.     The following ProcPtrs cannot be written in or called from a high-level 
  58.     language without the help of mixed mode or assembly glue because they 
  59.     use the following parameter-passing conventions:
  60.  
  61.     typedef pascal void ( *HighHookProcPtr)(const Types.Rect *r, TEPtr pTE);
  62.     typedef pascal void ( *CaretHookProcPtr)(const Types.Rect *r, TEPtr pTE);
  63.  
  64.         In:
  65.             =>     r                        on stack
  66.             =>    pTE                        A3.L
  67.         Out:
  68.             none
  69.  
  70.     typedef pascal Boolean ( *EOLHookProcPtr)(char theChar, TEPtr pTE, TEHandle hTE);
  71.  
  72.         In:
  73.             =>     theChar                    D0.B
  74.             =>    pTE                        A3.L
  75.             =>    hTE                        A4.L
  76.         Out:
  77.             <=    Boolean                    Z bit of the CCR
  78.  
  79.     typedef pascal unsigned short ( *WidthHookProcPtr)(unsigned short textLen,
  80.      unsigned short textOffset, void *textBufferPtr, TEPtr pTE, TEHandle hTE);
  81.     typedef pascal unsigned short ( *TextWidthHookProcPtr)(unsigned short textLen,
  82.      unsigned short textOffset, void *textBufferPtr, TEPtr pTE, TEHandle hTE);
  83.  
  84.         In:
  85.             =>     textLen                    D0.W
  86.             =>    textOffset                D1.W
  87.             =>    textBufferPtr            A0.L
  88.             =>    pTE                        A3.L
  89.             =>    hTE                        A4.L
  90.         Out:
  91.             <=    unsigned short            D1.W
  92.  
  93.     typedef pascal unsigned short ( *NWidthHookProcPtr)(unsigned short styleRunLen,
  94.      unsigned short styleRunOffset, short slop, short direction, void *textBufferPtr, 
  95.      short *lineStart, TEPtr pTE, TEHandle hTE);
  96.  
  97.         In:
  98.             =>     styleRunLen                D0.W
  99.             =>    styleRunOffset            D1.W
  100.             =>    slop                    D2.W (low)
  101.             =>    direction                D2.W (high)
  102.             =>    textBufferPtr            A0.L
  103.             =>    lineStart                A2.L
  104.             =>    pTE                        A3.L
  105.             =>    hTE                        A4.L
  106.         Out:
  107.             <=    unsigned short            D1.W
  108.  
  109.     typedef pascal void ( *DrawHookProcPtr)(unsigned short textOffset, unsigned short drawLen,
  110.      void *textBufferPtr, TEPtr pTE, TEHandle hTE);
  111.  
  112.         In:
  113.             =>     textOffset                D0.W
  114.             =>    drawLen                    D1.W
  115.             =>    textBufferPtr            A0.L
  116.             =>    pTE                        A3.L
  117.             =>    hTE                        A4.L
  118.         Out:
  119.             none
  120.  
  121.     typedef pascal Boolean ( *HitTestHookProcPtr)(unsigned short styleRunLen,
  122.      unsigned short styleRunOffset, unsigned short slop, void *textBufferPtr,
  123.      TEPtr pTE, TEHandle hTE, unsigned short *pixelWidth, unsigned short *charOffset, 
  124.      Boolean *pixelInChar);
  125.  
  126.         In:
  127.             =>     styleRunLen                D0.W
  128.             =>    styleRunOffset            D1.W
  129.             =>    slop                    D2.W
  130.             =>    textBufferPtr            A0.L
  131.             =>    pTE                        A3.L
  132.             =>    hTE                        A4.L
  133.         Out:
  134.             <=    pixelWidth                D0.W (low)
  135.             <=    Boolean                    D0.W (high)
  136.             <=    charOffset                D1.W
  137.             <=    pixelInChar                D2.W
  138.  
  139.     typedef pascal void ( *TEFindWordProcPtr)(unsigned short currentPos, short caller, 
  140.      TEPtr pTE, TEHandle hTE, unsigned short *wordStart, unsigned short *wordEnd);
  141.  
  142.         In:
  143.             =>     currentPos                D0.W
  144.             =>    caller                    D2.W
  145.             =>    pTE                        A3.L
  146.             =>    hTE                        A4.L
  147.         Out:
  148.             <=    wordStart                D0.W
  149.             <=    wordEnd                    D1.W
  150.  
  151.     typedef pascal void ( *TERecalcProcPtr)(TEPtr pTE, unsigned short changeLength,
  152.        unsigned short *lineStart, unsigned short *firstChar, unsigned short *lastChar);
  153.  
  154.         In:
  155.             =>     pTE                        A3.L
  156.             =>    changeLength            D7.W
  157.         Out:
  158.             <=    lineStart                D2.W
  159.             <=    firstChar                D3.W
  160.             <=    lastChar                D4.W
  161.  
  162.     typedef pascal void ( *TEDoTextProcPtr)(TEPtr pTE, unsigned short firstChar, unsigned short lastChar,
  163.                          short selector, Quickdraw.GrafPtr *currentGrafPort, short *charPosition);
  164.  
  165.         In:
  166.             =>     pTE                        A3.L
  167.             =>    firstChar                D3.W
  168.             =>    lastChar                D4.W
  169.             =>    selector                D7.W
  170.         Out:
  171.             <=    currentGrafPort            A0.L
  172.             <=    charPosition            D0.W
  173.             
  174. *)
  175.     HighHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE ((*CONST*)VAR r: Types.Rect; pTE: TEPtr);
  176.     EOLHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (theChar: Types.ByteParameter; pTE: TEPtr; hTE: TEHandle): BOOLEAN;
  177.     CaretHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE ((*CONST*)VAR r: Types.Rect; pTE: TEPtr);
  178.     WidthHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (textLen: INTEGER; textOffset: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle): INTEGER;
  179.     TextWidthHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (textLen: INTEGER; textOffset: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle): INTEGER;
  180.     NWidthHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (styleRunLen: INTEGER; styleRunOffset: INTEGER; slop: INTEGER; direction: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; VAR lineStart: INTEGER; pTE: TEPtr; hTE: TEHandle): INTEGER;
  181.     DrawHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (textOffset: INTEGER; drawLen: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle);
  182.     HitTestHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (styleRunLen: INTEGER; styleRunOffset: INTEGER; slop: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle; VAR pixelWidth: INTEGER; VAR charOffset: INTEGER; VAR pixelInChar: BOOLEAN): BOOLEAN;
  183.     TEFindWordProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (currentPos: INTEGER; caller: INTEGER; pTE: TEPtr; hTE: TEHandle; VAR wordStart: INTEGER; VAR wordEnd: INTEGER);
  184.     TERecalcProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (pTE: TEPtr; changeLength: INTEGER; VAR lineStart: INTEGER; VAR firstChar: INTEGER; VAR lastChar: INTEGER);
  185.     TEDoTextProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (pTE: TEPtr; firstChar: INTEGER; lastChar: INTEGER; selector: INTEGER; VAR currentGrafPort: Quickdraw.GrafPtr; VAR charPosition: INTEGER);
  186.     (*
  187.         TEClickLoopProcPtr uses register based parameters on the 68k and cannot
  188.         be written in or called from a high-level language without the help of
  189.         mixed mode or assembly glue.
  190.  
  191.         In:
  192.          => pTE             A3.L
  193.         Out:
  194.          <= return value    D0.B
  195.     *)
  196.     TEClickLoopProcPtr* = Types.Register68kProcPtr;  (* register PROCEDURE TEClickLoop*(pTE: TEPtr): BOOLEAN; *)
  197.     (*
  198.         WordBreakProcPtr uses register based parameters on the 68k and cannot
  199.         be written in or called from a high-level language without the help of
  200.         mixed mode or assembly glue.
  201.  
  202.         In:
  203.          => text            A0.L
  204.          => charPos         D0.W
  205.         Out:
  206.          <= return value    D0.B
  207.     *)
  208.     WordBreakProcPtr* = Types.Register68kProcPtr;  (* register PROCEDURE WordBreak*(text: Types.Ptr; charPos: INTEGER): BOOLEAN; *)
  209.     HighHookUPP* = Types.UniversalProcPtr;
  210.     EOLHookUPP* = Types.UniversalProcPtr;
  211.     CaretHookUPP* = Types.UniversalProcPtr;
  212.     WidthHookUPP* = Types.UniversalProcPtr;
  213.     TextWidthHookUPP* = Types.UniversalProcPtr;
  214.     NWidthHookUPP* = Types.UniversalProcPtr;
  215.     DrawHookUPP* = Types.UniversalProcPtr;
  216.     HitTestHookUPP* = Types.UniversalProcPtr;
  217.     TEFindWordUPP* = Types.UniversalProcPtr;
  218.     TERecalcUPP* = Types.UniversalProcPtr;
  219.     TEDoTextUPP* = Types.UniversalProcPtr;
  220.     TEClickLoopUPP* = Types.UniversalProcPtr;
  221.     WordBreakUPP* = Types.UniversalProcPtr;
  222.  
  223.     TERec* = RECORD
  224.         destRect*:                Types.Rect;
  225.         viewRect*:                Types.Rect;
  226.         selRect*:                Types.Rect;
  227.         lineHeight*:                INTEGER;
  228.         fontAscent*:                INTEGER;
  229.         selPoint*:                Types.Point;
  230.         selStart*:                INTEGER;
  231.         selEnd*:                    INTEGER;
  232.         active*:                    INTEGER;
  233.         wordBreak*:                WordBreakUPP;
  234.         clickLoop*:                TEClickLoopUPP;
  235.         clickTime*:                LONGINT;
  236.         clickLoc*:                INTEGER;
  237.         caretTime*:                LONGINT;
  238.         caretState*:                INTEGER;
  239.         just*:                    INTEGER;
  240.         teLength*:                INTEGER;
  241.         hText*:                    Types.Handle;
  242.         hDispatchRec*:            LONGINT;                                (* added to replace recalBack & recalLines.  it's a handle anyway *)
  243.         clikStuff*:                INTEGER;
  244.         crOnly*:                    INTEGER;
  245.         txFont*:                    INTEGER;
  246.         txFace*:                    Types.Style;                                    (*txFace is unpacked byte*)
  247.         txMode*:                    INTEGER;
  248.         txSize*:                    INTEGER;
  249.         inPort*:                    Quickdraw.GrafPtr;
  250.         highHook*:                HighHookUPP;
  251.         caretHook*:                CaretHookUPP;
  252.         nLines*:                    INTEGER;
  253.         lineStarts*:                ARRAY 16001 (*ΔΔ[0..16000]ΔΔ*) OF INTEGER;
  254.     END;
  255.  
  256.  
  257. CONST
  258. (* Justification (word alignment) styles *)
  259.     teJustLeft*                    = 0;
  260.     teJustCenter*                = 1;
  261.     teJustRight*                    = -1;
  262.     teForceLeft*                    = -2;
  263. (* new names for the Justification (word alignment) styles *)
  264.     teFlushDefault*                = 0;                            (*flush according to the line direction *)
  265.     teCenter*                    = 1;                            (*center justify (word alignment) *)
  266.     teFlushRight*                = -1;                            (*flush right for all scripts *)
  267.     teFlushLeft*                    = -2;                            (*flush left for all scripts *)
  268. (* Set/Replace style modes *)
  269.     fontBit*                        = 0;                            (*set font*)
  270.     faceBit*                        = 1;                            (*set face*)
  271.     sizeBit*                        = 2;                            (*set size*)
  272.     clrBit*                        = 3;                            (*set color*)
  273.     addSizeBit*                    = 4;                            (*add size mode*)
  274.     toggleBit*                    = 5;                            (*set faces in toggle mode*)
  275.     toglBit*                        = 5;                            (* obsolete.  use toggleBit *)
  276. (* TESetStyle/TEContinuousStyle modes *)
  277.     doFont*                        = 1;                            (* set font (family) number*)
  278.     doFace*                        = 2;                            (*set character style*)
  279.     doSize*                        = 4;                            (*set type size*)
  280.     doColor*                        = 8;                            (*set color*)
  281.     doAll*                        = 15;                            (*set all attributes*)
  282.     addSize*                        = 16;                            (*adjust type size*)
  283.  
  284.     doToggle*                    = 32;                            (*toggle mode for TESetStyle*)
  285. (* offsets into TEDispatchRec *)
  286.     EOLHook*                        = 0;                            (*[UniversalProcPtr] TEEOLHook*)
  287.     DRAWHook*                    = 4;                            (*[UniversalProcPtr] TEWidthHook*)
  288.     WIDTHHook*                    = 8;                            (*[UniversalProcPtr] TEDrawHook*)
  289.     HITTESTHook*                    = 12;                            (*[UniversalProcPtr] TEHitTestHook*)
  290.     nWIDTHHook*                    = 24;                            (*[UniversalProcPtr] nTEWidthHook*)
  291.     TextWidthHook*                = 28;                            (*[UniversalProcPtr] TETextWidthHook*)
  292. (* selectors for TECustomHook *)
  293.     intEOLHook*                    = 0;                            (*TEIntHook value*)
  294.     intDrawHook*                    = 1;                            (*TEIntHook value*)
  295.     intWidthHook*                = 2;                            (*TEIntHook value*)
  296.     intHitTestHook*                = 3;                            (*TEIntHook value*)
  297.     intNWidthHook*                = 6;                            (*TEIntHook value for new version of WidthHook*)
  298.     intTextWidthHook*            = 7;                            (*TEIntHook value for new TextWidthHook*)
  299.     teFAutoScroll*                = 0;                            (*00000001b*)
  300.     teFAutoScr*                    = 0;                            (*00000001b  obsolete. use teFAutoScroll*)
  301.     teFTextBuffering*            = 1;                            (*00000010b*)
  302.     teFOutlineHilite*            = 2;                            (*00000100b*)
  303.     teFInlineInput*                = 3;                            (*00001000b *)
  304.     teFUseTextServices*            = 4;                            (*00010000b *)
  305.  
  306. (* action for the new "bit (un)set" interface, TEFeatureFlag *)
  307.     teBitClear*                    = 0;
  308.     teBitSet*                    = 1;                            (*set the selector bit*)
  309.     teBitTest*                    = -1;                            (*no change; just return the current setting*)
  310. (*constants for identifying the routine that called FindWord *)
  311.     teWordSelect*                = 4;                            (*clickExpand to select word*)
  312.     teWordDrag*                    = 8;                            (*clickExpand to drag new word*)
  313.     teFromFind*                    = 12;                            (*FindLine called it ($0C)*)
  314.     teFromRecal*                    = 16;                            (*RecalLines called it ($10)      obsolete *)
  315. (*constants for identifying TEDoText selectors *)
  316.     teFind*                        = 0;                            (*TEDoText called for searching*)
  317.     teHighlight*                    = 1;                            (*TEDoText called for highlighting*)
  318.     teDraw*                        = -1;                            (*TEDoText called for drawing text*)
  319.     teCaret*                        = -2;                            (*TEDoText called for drawing the caret*)
  320.  
  321.     
  322. TYPE
  323.     Chars* = (*ΔΔPACKEDΔΔ*) ARRAY 32001 (*ΔΔ[0..32000]ΔΔ*) OF CHAR;
  324.  
  325.     CharsPtr* = POINTER TO Chars;
  326.  
  327.     CharsHandle* = HANDLE TO Chars (*ΔΔ POINTER TO CharsPtr*);
  328.  
  329.     StyleRun* = RECORD
  330.         startChar*:                INTEGER;                                (*starting character position*)
  331.         styleIndex*:                INTEGER;                                (*index in style table*)
  332.     END;
  333.  
  334.     STElement* = RECORD
  335.         stCount*:                INTEGER;                                (*number of runs in this style*)
  336.         stHeight*:                INTEGER;                                (*line height*)
  337.         stAscent*:                INTEGER;                                (*font ascent*)
  338.         stFont*:                    INTEGER;                                (*font (family) number*)
  339.         stFace*:                    Types.Style;                                    (*character Types.Style*)
  340.         stSize*:                    INTEGER;                                (*size in points*)
  341.         stColor*:                Quickdraw.RGBColor;                                (*absolute (RGB) color*)
  342.     END;
  343.  
  344.     TEStyleTable* = ARRAY 1777 (*ΔΔ[0..1776]ΔΔ*) OF STElement;
  345.  
  346.     STPtr* = POINTER TO TEStyleTable;
  347.     STHandle* = HANDLE TO TEStyleTable (*ΔΔ POINTER TO STPtr*);
  348.  
  349.     LHElement* = RECORD
  350.         lhHeight*:                INTEGER;                                (*maximum height in line*)
  351.         lhAscent*:                INTEGER;                                (*maximum ascent in line*)
  352.     END;
  353.  
  354.     LHTable* = ARRAY 8001 (*ΔΔ[0..8000]ΔΔ*) OF LHElement;
  355.  
  356.     LHPtr* = POINTER TO LHTable;
  357.     LHHandle* = HANDLE TO LHTable (*ΔΔ POINTER TO LHPtr*);
  358.  
  359.     ScrpSTElement* = RECORD
  360.         scrpStartChar*:            LONGINT;                                (*starting character position*)
  361.         scrpHeight*:                INTEGER;                                (*starting character position*)
  362.         scrpAscent*:                INTEGER;
  363.         scrpFont*:                INTEGER;
  364.         scrpFace*:                Types.Style;                                    (*unpacked byte*)
  365.         scrpSize*:                INTEGER;
  366.         scrpColor*:                Quickdraw.RGBColor;
  367.     END;
  368.  
  369. (* ARRAY [0..1600] OF ScrpSTElement *)
  370.     ScrpSTTable* = ARRAY 1601 (*ΔΔ[0..1600]ΔΔ*) OF ScrpSTElement;
  371.  
  372.     StScrpRec* = RECORD
  373.         scrpNStyles*:            INTEGER;                                (*number of styles in scrap*)
  374.         scrpStyleTab*:            ScrpSTTable;                            (*table of styles for scrap*)
  375.     END;
  376.  
  377.     StScrpPtr* = POINTER TO StScrpRec;
  378.     StScrpHandle* = HANDLE TO StScrpRec (*ΔΔ POINTER TO StScrpPtr*);
  379.  
  380.     NullStRec* = RECORD
  381.         teReserved*:                LONGINT;                                (*reserved for future expansion*)
  382.         nullScrap*:                StScrpHandle;                            (*handle to scrap style table*)
  383.     END;
  384.  
  385.     NullStPtr* = POINTER TO NullStRec;
  386.     NullStHandle* = HANDLE TO NullStRec (*ΔΔ POINTER TO NullStPtr*);
  387.  
  388.     TEStyleRec* = RECORD
  389.         nRuns*:                    INTEGER;                                (*number of style runs*)
  390.         nStyles*:                INTEGER;                                (*size of style table*)
  391.         styleTab*:                STHandle;                                (*handle to style table*)
  392.         lhTab*:                    LHHandle;                                (*handle to line-height table*)
  393.         teRefCon*:                LONGINT;                                (*reserved for application use*)
  394.         nullStyle*:                NullStHandle;                            (*Types.Handle to style set at null selection*)
  395.         runs*:                    ARRAY 8001 (*ΔΔ[0..8000]ΔΔ*) OF StyleRun;            (*ARRAY [0..8000] OF StyleRun*)
  396.     END;
  397.  
  398.     TEStylePtr* = POINTER TO TEStyleRec;
  399.     TEStyleHandle* = HANDLE TO TEStyleRec (*ΔΔ POINTER TO TEStylePtr*);
  400.  
  401.     TextStyle* = RECORD
  402.         tsFont*:                    INTEGER;                                (*font (family) number*)
  403.         tsFace*:                    Types.Style;                                    (*character Types.Style*)
  404.         tsSize*:                    INTEGER;                                (*size in point*)
  405.         tsColor*:                Quickdraw.RGBColor;                                (*absolute (RGB) color*)
  406.     END;
  407.  
  408.     TextStylePtr* = POINTER TO TextStyle;
  409.     TextStyleHandle* = HANDLE TO TextStyle (*ΔΔ POINTER TO TextStylePtr*);
  410.  
  411.     TEIntHook* = INTEGER;
  412.  
  413.  
  414. CONST
  415.     uppHighHookProcInfo* = $0000000F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseHighHook ) *)
  416.     uppEOLHookProcInfo* = $0000001F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseEOLHook ) *)
  417.     uppCaretHookProcInfo* = $0000000F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseCaretHook ) *)
  418.     uppWidthHookProcInfo* = $0000002F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseWidthHook ) *)
  419.     uppTextWidthHookProcInfo* = $0000002F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseTextWidthHook ) *)
  420.     uppNWidthHookProcInfo* = $0000003F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseNWidthHook ) *)
  421.     uppDrawHookProcInfo* = $0000004F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseDrawHook ) *)
  422.     uppHitTestHookProcInfo* = $0000005F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseHitTestHook ) *)
  423.     uppTEFindWordProcInfo* = $0000006F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseTEFindWord ) *)
  424.     uppTERecalcProcInfo* = $0000009F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseTERecalc ) *)
  425.     uppTEDoTextProcInfo* = $000000AF; (* SPECIAL_CASE_PROCINFO( kSpecialCaseTEDoText ) *)
  426.     uppTEClickLoopProcInfo* = $0000F812; (* Register PROCEDURE (4 bytes in A3): 1 byte in D0; *)
  427.     uppWordBreakProcInfo* = $00029812; (* Register PROCEDURE (4 bytes in A0, 2 bytes in D0): 1 byte in D0; *)
  428.  
  429. PROCEDURE NewHighHookProc*(userRoutine: HighHookProcPtr): HighHookUPP;
  430.     (*$IF NOT GENERATINGCFM *)
  431.     INLINE PASCAL $2E9F;
  432.     (*$END*)
  433.  
  434. PROCEDURE NewEOLHookProc*(userRoutine: EOLHookProcPtr): EOLHookUPP;
  435.     (*$IF NOT GENERATINGCFM *)
  436.     INLINE PASCAL $2E9F;
  437.     (*$END*)
  438.  
  439. PROCEDURE NewCaretHookProc*(userRoutine: CaretHookProcPtr): CaretHookUPP;
  440.     (*$IF NOT GENERATINGCFM *)
  441.     INLINE PASCAL $2E9F;
  442.     (*$END*)
  443.  
  444. PROCEDURE NewWidthHookProc*(userRoutine: WidthHookProcPtr): WidthHookUPP;
  445.     (*$IF NOT GENERATINGCFM *)
  446.     INLINE PASCAL $2E9F;
  447.     (*$END*)
  448.  
  449. PROCEDURE NewTextWidthHookProc*(userRoutine: TextWidthHookProcPtr): TextWidthHookUPP;
  450.     (*$IF NOT GENERATINGCFM *)
  451.     INLINE PASCAL $2E9F;
  452.     (*$END*)
  453.  
  454. PROCEDURE NewNWidthHookProc*(userRoutine: NWidthHookProcPtr): NWidthHookUPP;
  455.     (*$IF NOT GENERATINGCFM *)
  456.     INLINE PASCAL $2E9F;
  457.     (*$END*)
  458.  
  459. PROCEDURE NewDrawHookProc*(userRoutine: DrawHookProcPtr): DrawHookUPP;
  460.     (*$IF NOT GENERATINGCFM *)
  461.     INLINE PASCAL $2E9F;
  462.     (*$END*)
  463.  
  464. PROCEDURE NewHitTestHookProc*(userRoutine: HitTestHookProcPtr): HitTestHookUPP;
  465.     (*$IF NOT GENERATINGCFM *)
  466.     INLINE PASCAL $2E9F;
  467.     (*$END*)
  468.  
  469. PROCEDURE NewTEFindWordProc*(userRoutine: TEFindWordProcPtr): TEFindWordUPP;
  470.     (*$IF NOT GENERATINGCFM *)
  471.     INLINE PASCAL $2E9F;
  472.     (*$END*)
  473.  
  474. PROCEDURE NewTERecalcProc*(userRoutine: TERecalcProcPtr): TERecalcUPP;
  475.     (*$IF NOT GENERATINGCFM *)
  476.     INLINE PASCAL $2E9F;
  477.     (*$END*)
  478.  
  479. PROCEDURE NewTEDoTextProc*(userRoutine: TEDoTextProcPtr): TEDoTextUPP;
  480.     (*$IF NOT GENERATINGCFM *)
  481.     INLINE PASCAL $2E9F;
  482.     (*$END*)
  483.  
  484. PROCEDURE NewTEClickLoopProc*(userRoutine: TEClickLoopProcPtr): TEClickLoopUPP;
  485.     (*$IF NOT GENERATINGCFM *)
  486.     INLINE PASCAL $2E9F;
  487.     (*$END*)
  488.  
  489. PROCEDURE NewWordBreakProc*(userRoutine: WordBreakProcPtr): WordBreakUPP;
  490.     (*$IF NOT GENERATINGCFM *)
  491.     INLINE PASCAL $2E9F;
  492.     (*$END*)
  493.  
  494. PROCEDURE CallHighHookProc*((*CONST*)VAR r: Types.Rect; pTE: TEPtr; userRoutine: HighHookUPP);
  495.     (*$IF NOT GENERATINGCFM*)
  496.     INLINE PASCAL ; (*••*)
  497.     (*To be implemented:  Glue to move parameters according to special case conventions.*)
  498.     (*$END*)
  499.  
  500. PROCEDURE CallEOLHookProc*(theChar: Types.ByteParameter; pTE: TEPtr; hTE: TEHandle; userRoutine: EOLHookUPP): BOOLEAN;
  501.     (*$IF NOT GENERATINGCFM*)
  502.     INLINE PASCAL ; (*••*)
  503.     (*To be implemented:  Glue to move parameters according to special case conventions.*)
  504.     (*$END*)
  505.  
  506. PROCEDURE CallCaretHookProc*((*CONST*)VAR r: Types.Rect; pTE: TEPtr; userRoutine: CaretHookUPP);
  507.     (*$IF NOT GENERATINGCFM*)
  508.     INLINE PASCAL ; (*••*)
  509.     (*To be implemented:  Glue to move parameters according to special case conventions.*)
  510.     (*$END*)
  511.  
  512. PROCEDURE CallWidthHookProc*(textLen: INTEGER; textOffset: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle; userRoutine: WidthHookUPP): INTEGER;
  513.     (*$IF NOT GENERATINGCFM*)
  514.     INLINE PASCAL ; (*••*)
  515.     (*To be implemented:  Glue to move parameters according to special case conventions.*)
  516.     (*$END*)
  517.  
  518. PROCEDURE CallTextWidthHookProc*(textLen: INTEGER; textOffset: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle; userRoutine: TextWidthHookUPP): INTEGER;
  519.     (*$IF NOT GENERATINGCFM*)
  520.     INLINE PASCAL ; (*••*)
  521.     (*To be implemented:  Glue to move parameters according to special case conventions.*)
  522.     (*$END*)
  523.  
  524. PROCEDURE CallNWidthHookProc*(styleRunLen: INTEGER; styleRunOffset: INTEGER; slop: INTEGER; direction: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; VAR lineStart: INTEGER; pTE: TEPtr; hTE: TEHandle; userRoutine: NWidthHookUPP): INTEGER;
  525.     (*$IF NOT GENERATINGCFM*)
  526.     INLINE PASCAL ; (*••*)
  527.     (*To be implemented:  Glue to move parameters according to special case conventions.*)
  528.     (*$END*)
  529.  
  530. PROCEDURE CallDrawHookProc*(textOffset: INTEGER; drawLen: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle; userRoutine: DrawHookUPP);
  531.     (*$IF NOT GENERATINGCFM*)
  532.     INLINE PASCAL ; (*••*)
  533.     (*To be implemented:  Glue to move parameters according to special case conventions.*)
  534.     (*$END*)
  535.  
  536. PROCEDURE CallHitTestHookProc*(styleRunLen: INTEGER; styleRunOffset: INTEGER; slop: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle; VAR pixelWidth: INTEGER; VAR charOffset: INTEGER; VAR pixelInChar: BOOLEAN; userRoutine: HitTestHookUPP): BOOLEAN;
  537.     (*$IF NOT GENERATINGCFM*)
  538.     INLINE PASCAL ; (*••*)
  539.     (*To be implemented:  Glue to move parameters according to special case conventions.*)
  540.     (*$END*)
  541.  
  542. PROCEDURE CallTEFindWordProc*(currentPos: INTEGER; caller: INTEGER; pTE: TEPtr; hTE: TEHandle; VAR wordStart: INTEGER; VAR wordEnd: INTEGER; userRoutine: TEFindWordUPP);
  543.     (*$IF NOT GENERATINGCFM*)
  544.     INLINE PASCAL ; (*••*)
  545.     (*To be implemented:  Glue to move parameters according to special case conventions.*)
  546.     (*$END*)
  547.  
  548. PROCEDURE CallTERecalcProc*(pTE: TEPtr; changeLength: INTEGER; VAR lineStart: INTEGER; VAR firstChar: INTEGER; VAR lastChar: INTEGER; userRoutine: TERecalcUPP);
  549.     (*$IF NOT GENERATINGCFM*)
  550.     INLINE PASCAL ; (*••*)
  551.     (*To be implemented:  Glue to move parameters according to special case conventions.*)
  552.     (*$END*)
  553.  
  554. PROCEDURE CallTEDoTextProc*(pTE: TEPtr; firstChar: INTEGER; lastChar: INTEGER; selector: INTEGER; VAR currentGrafPort: Quickdraw.GrafPtr; VAR charPosition: INTEGER; userRoutine: TEDoTextUPP);
  555.     (*$IF NOT GENERATINGCFM*)
  556.     INLINE PASCAL ; (*••*)
  557.     (*To be implemented:  Glue to move parameters according to special case conventions.*)
  558.     (*$END*)
  559.  
  560. PROCEDURE CallTEClickLoopProc*(pTE: TEPtr; userRoutine: TEClickLoopUPP): BOOLEAN;
  561.     (*$IF NOT GENERATINGCFM*)
  562.     INLINE PASCAL ; (*••*)
  563.     (*To be implemented:  Glue to move parameters into registers.*)
  564.     (*$END*)
  565.  
  566. PROCEDURE CallWordBreakProc*(text: Types.Ptr; charPos: INTEGER; userRoutine: WordBreakUPP): BOOLEAN;
  567.     (*$IF NOT GENERATINGCFM*)
  568.     INLINE PASCAL ; (*••*)
  569.     (*To be implemented:  Glue to move parameters into registers.*)
  570.     (*$END*)
  571. PROCEDURE TEScrapHandle*(): Types.Handle;
  572.     (*$IF NOT CFMSYSTEMCALLS*)
  573.     INLINE PASCAL $2EB8, $0AB4;            (* MOVE.l $0AB4,(SP) *)
  574.     (*$END*)
  575.  
  576. PROCEDURE TEGetScrapLength*(): LONGINT;
  577.     EXTERNAL PASCAL;
  578. PROCEDURE TEInit*;
  579.     (*$IF NOT GENERATINGCFM*)
  580.     INLINE PASCAL $A9CC;
  581.     (*$END*)
  582. PROCEDURE TENew*((*CONST*)VAR destRect: Types.Rect; (*CONST*)VAR viewRect: Types.Rect): TEHandle;
  583.     (*$IF NOT GENERATINGCFM*)
  584.     INLINE PASCAL $A9D2;
  585.     (*$END*)
  586. PROCEDURE TEDispose*(hTE: TEHandle);
  587.     (*$IF NOT GENERATINGCFM*)
  588.     INLINE PASCAL $A9CD;
  589.     (*$END*)
  590. PROCEDURE TESetText*(text: (*ΔΔUNIVΔΔ*) Types.Ptr; length: LONGINT; hTE: TEHandle);
  591.     (*$IF NOT GENERATINGCFM*)
  592.     INLINE PASCAL $A9CF;
  593.     (*$END*)
  594. PROCEDURE TEGetText*(hTE: TEHandle): CharsHandle;
  595.     (*$IF NOT GENERATINGCFM*)
  596.     INLINE PASCAL $A9CB;
  597.     (*$END*)
  598. PROCEDURE TEIdle*(hTE: TEHandle);
  599.     (*$IF NOT GENERATINGCFM*)
  600.     INLINE PASCAL $A9DA;
  601.     (*$END*)
  602. PROCEDURE TESetSelect*(selStart: LONGINT; selEnd: LONGINT; hTE: TEHandle);
  603.     (*$IF NOT GENERATINGCFM*)
  604.     INLINE PASCAL $A9D1;
  605.     (*$END*)
  606. PROCEDURE TEActivate*(hTE: TEHandle);
  607.     (*$IF NOT GENERATINGCFM*)
  608.     INLINE PASCAL $A9D8;
  609.     (*$END*)
  610. PROCEDURE TEDeactivate*(hTE: TEHandle);
  611.     (*$IF NOT GENERATINGCFM*)
  612.     INLINE PASCAL $A9D9;
  613.     (*$END*)
  614. PROCEDURE TEKey*(key: CHAR; hTE: TEHandle);
  615.     (*$IF NOT GENERATINGCFM*)
  616.     INLINE PASCAL $A9DC;
  617.     (*$END*)
  618. PROCEDURE TECut*(hTE: TEHandle);
  619.     (*$IF NOT GENERATINGCFM*)
  620.     INLINE PASCAL $A9D6;
  621.     (*$END*)
  622. PROCEDURE TECopy*(hTE: TEHandle);
  623.     (*$IF NOT GENERATINGCFM*)
  624.     INLINE PASCAL $A9D5;
  625.     (*$END*)
  626. PROCEDURE TEPaste*(hTE: TEHandle);
  627.     (*$IF NOT GENERATINGCFM*)
  628.     INLINE PASCAL $A9DB;
  629.     (*$END*)
  630. PROCEDURE TEDelete*(hTE: TEHandle);
  631.     (*$IF NOT GENERATINGCFM*)
  632.     INLINE PASCAL $A9D7;
  633.     (*$END*)
  634. PROCEDURE TEInsert*(text: (*ΔΔUNIVΔΔ*) Types.Ptr; length: LONGINT; hTE: TEHandle);
  635.     (*$IF NOT GENERATINGCFM*)
  636.     INLINE PASCAL $A9DE;
  637.     (*$END*)
  638. PROCEDURE TESetAlignment*(just: INTEGER; hTE: TEHandle);
  639.     (*$IF NOT GENERATINGCFM*)
  640.     INLINE PASCAL $A9DF;
  641.     (*$END*)
  642. PROCEDURE TEUpdate*((*CONST*)VAR rUpdate: Types.Rect; hTE: TEHandle);
  643.     (*$IF NOT GENERATINGCFM*)
  644.     INLINE PASCAL $A9D3;
  645.     (*$END*)
  646. PROCEDURE TETextBox*(text: (*ΔΔUNIVΔΔ*) Types.Ptr; length: LONGINT; (*CONST*)VAR box: Types.Rect; just: INTEGER);
  647.     (*$IF NOT GENERATINGCFM*)
  648.     INLINE PASCAL $A9CE;
  649.     (*$END*)
  650. PROCEDURE TEScroll*(dh: INTEGER; dv: INTEGER; hTE: TEHandle);
  651.     (*$IF NOT GENERATINGCFM*)
  652.     INLINE PASCAL $A9DD;
  653.     (*$END*)
  654. PROCEDURE TESelView*(hTE: TEHandle);
  655.     (*$IF NOT GENERATINGCFM*)
  656.     INLINE PASCAL $A811;
  657.     (*$END*)
  658. PROCEDURE TEPinScroll*(dh: INTEGER; dv: INTEGER; hTE: TEHandle);
  659.     (*$IF NOT GENERATINGCFM*)
  660.     INLINE PASCAL $A812;
  661.     (*$END*)
  662. PROCEDURE TEAutoView*(fAuto: BOOLEAN; hTE: TEHandle);
  663.     (*$IF NOT GENERATINGCFM*)
  664.     INLINE PASCAL $A813;
  665.     (*$END*)
  666. PROCEDURE TECalText*(hTE: TEHandle);
  667.     (*$IF NOT GENERATINGCFM*)
  668.     INLINE PASCAL $A9D0;
  669.     (*$END*)
  670. PROCEDURE TEGetOffset*(pt: Types.Point; hTE: TEHandle): INTEGER;
  671.     (*$IF NOT GENERATINGCFM*)
  672.     INLINE PASCAL $A83C;
  673.     (*$END*)
  674. PROCEDURE TEGetPoint*(offset: INTEGER; hTE: TEHandle): LONGINT (*ΔΔ Types.Point*);
  675.     (*$IF NOT GENERATINGCFM*)
  676.     INLINE PASCAL $3F3C, $0008, $A83D;
  677.     (*$END*)
  678. PROCEDURE TEClick*(pt: Types.Point; fExtend: BOOLEAN; h: TEHandle);
  679.     (*$IF NOT GENERATINGCFM*)
  680.     INLINE PASCAL $A9D4;
  681.     (*$END*)
  682. PROCEDURE TEStyleNew*((*CONST*)VAR destRect: Types.Rect; (*CONST*)VAR viewRect: Types.Rect): TEHandle;
  683.     (*$IF NOT GENERATINGCFM*)
  684.     INLINE PASCAL $A83E;
  685.     (*$END*)
  686. PROCEDURE TESetStyleHandle*(theHandle: TEStyleHandle; hTE: TEHandle);
  687.     (*$IF NOT GENERATINGCFM*)
  688.     INLINE PASCAL $3F3C, $0005, $A83D;
  689.     (*$END*)
  690. PROCEDURE TEGetStyleHandle*(hTE: TEHandle): TEStyleHandle;
  691.     (*$IF NOT GENERATINGCFM*)
  692.     INLINE PASCAL $3F3C, $0004, $A83D;
  693.     (*$END*)
  694. PROCEDURE TEGetStyle*(offset: INTEGER; VAR theStyle: TextStyle; VAR lineHeight: INTEGER; VAR fontAscent: INTEGER; hTE: TEHandle);
  695.     (*$IF NOT GENERATINGCFM*)
  696.     INLINE PASCAL $3F3C, $0003, $A83D;
  697.     (*$END*)
  698. PROCEDURE TEStylePaste*(hTE: TEHandle);
  699.     (*$IF NOT GENERATINGCFM*)
  700.     INLINE PASCAL $3F3C, $0000, $A83D;
  701.     (*$END*)
  702. PROCEDURE TESetStyle*(mode: INTEGER; (*CONST*)VAR newStyle: TextStyle; fRedraw: BOOLEAN; hTE: TEHandle);
  703.     (*$IF NOT GENERATINGCFM*)
  704.     INLINE PASCAL $3F3C, $0001, $A83D;
  705.     (*$END*)
  706. PROCEDURE TEReplaceStyle*(mode: INTEGER; (*CONST*)VAR oldStyle: TextStyle; (*CONST*)VAR newStyle: TextStyle; fRedraw: BOOLEAN; hTE: TEHandle);
  707.     (*$IF NOT GENERATINGCFM*)
  708.     INLINE PASCAL $3F3C, $0002, $A83D;
  709.     (*$END*)
  710. PROCEDURE TEGetStyleScrapHandle*(hTE: TEHandle): StScrpHandle;
  711.     (*$IF NOT GENERATINGCFM*)
  712.     INLINE PASCAL $3F3C, $0006, $A83D;
  713.     (*$END*)
  714. PROCEDURE TEStyleInsert*(text: (*ΔΔUNIVΔΔ*) Types.Ptr; length: LONGINT; hST: StScrpHandle; hTE: TEHandle);
  715.     (*$IF NOT GENERATINGCFM*)
  716.     INLINE PASCAL $3F3C, $0007, $A83D;
  717.     (*$END*)
  718. PROCEDURE TEGetHeight*(endLine: LONGINT; startLine: LONGINT; hTE: TEHandle): LONGINT;
  719.     (*$IF NOT GENERATINGCFM*)
  720.     INLINE PASCAL $3F3C, $0009, $A83D;
  721.     (*$END*)
  722. PROCEDURE TEContinuousStyle*(VAR mode: INTEGER; VAR aStyle: TextStyle; hTE: TEHandle): BOOLEAN;
  723.     (*$IF NOT GENERATINGCFM*)
  724.     INLINE PASCAL $3F3C, $000A, $A83D;
  725.     (*$END*)
  726. PROCEDURE TEUseStyleScrap*(rangeStart: LONGINT; rangeEnd: LONGINT; newStyles: StScrpHandle; fRedraw: BOOLEAN; hTE: TEHandle);
  727.     (*$IF NOT GENERATINGCFM*)
  728.     INLINE PASCAL $3F3C, $000B, $A83D;
  729.     (*$END*)
  730. PROCEDURE TECustomHook*(which: TEIntHook; VAR addr: Types.UniversalProcPtr; hTE: TEHandle);
  731.     (*$IF NOT GENERATINGCFM*)
  732.     INLINE PASCAL $3F3C, $000C, $A83D;
  733.     (*$END*)
  734. PROCEDURE TENumStyles*(rangeStart: LONGINT; rangeEnd: LONGINT; hTE: TEHandle): LONGINT;
  735.     (*$IF NOT GENERATINGCFM*)
  736.     INLINE PASCAL $3F3C, $000D, $A83D;
  737.     (*$END*)
  738. PROCEDURE TEFeatureFlag*(feature: INTEGER; action: INTEGER; hTE: TEHandle): INTEGER;
  739.     (*$IF NOT GENERATINGCFM*)
  740.     INLINE PASCAL $3F3C, $000E, $A83D;
  741.     (*$END*)
  742. PROCEDURE TEGetHiliteRgn*(region: Quickdraw.RgnHandle; hTE: TEHandle): Types.OSErr;
  743.     (*$IF NOT GENERATINGCFM*)
  744.     INLINE PASCAL $3F3C, $000F, $A83D;
  745.     (*$END*)
  746. PROCEDURE TESetScrapLength*(length: LONGINT);
  747.     EXTERNAL PASCAL;
  748. PROCEDURE TEFromScrap*(): Types.OSErr;
  749.     EXTERNAL PASCAL;
  750. PROCEDURE TEToScrap*(): Types.OSErr;
  751.     EXTERNAL PASCAL;
  752. PROCEDURE TESetClickLoop*(clikProc: TEClickLoopUPP; hTE: TEHandle);
  753.     EXTERNAL PASCAL;
  754. PROCEDURE TESetWordBreak*(wBrkProc: WordBreakUPP; hTE: TEHandle);
  755.     EXTERNAL PASCAL;
  756. (* 
  757.     There is no function to get/set the low-mem for FindWordHook at 0x07F8.
  758.     This is because it is not a low-mem Types.ProcPtr. That address is the entry
  759.     in the OS TrapTable for trap 0xA0FE.  You can use Get/SetTrapAddress to 
  760.     acccess it.
  761. *)
  762. (*$IF OLDROUTINENAMES *)
  763. PROCEDURE TESetJust*(just: INTEGER; hTE: TEHandle);
  764.     (*$IF NOT GENERATINGCFM*)
  765.     INLINE PASCAL $A9DF;
  766.     (*$END*)
  767. PROCEDURE TextBox*(text: (*ΔΔUNIVΔΔ*) Types.Ptr; length: LONGINT; (*CONST*)VAR box: Types.Rect; just: INTEGER);
  768.     (*$IF NOT GENERATINGCFM*)
  769.     INLINE PASCAL $A9CE;
  770.     (*$END*)
  771. PROCEDURE TEStylNew*((*CONST*)VAR destRect: Types.Rect; (*CONST*)VAR viewRect: Types.Rect): TEHandle;
  772.     (*$IF NOT GENERATINGCFM*)
  773.     INLINE PASCAL $A83E;
  774.     (*$END*)
  775. PROCEDURE SetStylHandle*(theHandle: TEStyleHandle; hTE: TEHandle);
  776.     (*$IF NOT GENERATINGCFM*)
  777.     INLINE PASCAL $3F3C, $0005, $A83D;
  778.     (*$END*)
  779. PROCEDURE SetStyleHandle*(theHandle: TEStyleHandle; hTE: TEHandle);
  780.     (*$IF NOT GENERATINGCFM*)
  781.     INLINE PASCAL $3F3C, $0005, $A83D;
  782.     (*$END*)
  783. PROCEDURE GetStylHandle*(hTE: TEHandle): TEStyleHandle;
  784.     (*$IF NOT GENERATINGCFM*)
  785.     INLINE PASCAL $3F3C, $0004, $A83D;
  786.     (*$END*)
  787. PROCEDURE GetStyleHandle*(hTE: TEHandle): TEStyleHandle;
  788.     (*$IF NOT GENERATINGCFM*)
  789.     INLINE PASCAL $3F3C, $0004, $A83D;
  790.     (*$END*)
  791. PROCEDURE TEStylPaste*(hTE: TEHandle);
  792.     (*$IF NOT GENERATINGCFM*)
  793.     INLINE PASCAL $3F3C, $0000, $A83D;
  794.     (*$END*)
  795. PROCEDURE GetStylScrap*(hTE: TEHandle): StScrpHandle;
  796.     (*$IF NOT GENERATINGCFM*)
  797.     INLINE PASCAL $3F3C, $0006, $A83D;
  798.     (*$END*)
  799. PROCEDURE GetStyleScrap*(hTE: TEHandle): StScrpHandle;
  800.     (*$IF NOT GENERATINGCFM*)
  801.     INLINE PASCAL $3F3C, $0006, $A83D;
  802.     (*$END*)
  803. PROCEDURE SetStylScrap*(rangeStart: LONGINT; rangeEnd: LONGINT; newStyles: StScrpHandle; fRedraw: BOOLEAN; hTE: TEHandle);
  804.     (*$IF NOT GENERATINGCFM*)
  805.     INLINE PASCAL $3F3C, $000B, $A83D;
  806.     (*$END*)
  807. PROCEDURE SetStyleScrap*(rangeStart: LONGINT; rangeEnd: LONGINT; newStyles: StScrpHandle; fRedraw: BOOLEAN; hTE: TEHandle);
  808.     (*$IF NOT GENERATINGCFM*)
  809.     INLINE PASCAL $3F3C, $000B, $A83D;
  810.     (*$END*)
  811. PROCEDURE TEStylInsert*(text: (*ΔΔUNIVΔΔ*) Types.Ptr; length: LONGINT; hST: StScrpHandle; hTE: TEHandle);
  812.     (*$IF NOT GENERATINGCFM*)
  813.     INLINE PASCAL $3F3C, $0007, $A83D;
  814.     (*$END*)
  815. PROCEDURE TESetScrapLen*(length: LONGINT);
  816.     EXTERNAL PASCAL;
  817. PROCEDURE TEGetScrapLen*(): LONGINT;
  818.     EXTERNAL PASCAL;
  819. PROCEDURE SetClikLoop*(clikProc: TEClickLoopUPP; hTE: TEHandle);
  820.     EXTERNAL PASCAL;
  821. PROCEDURE SetWordBreak*(wBrkProc: WordBreakUPP; hTE: TEHandle);
  822.     EXTERNAL PASCAL;
  823. (*$END*)
  824.  
  825. (* $ALIGN RESET*)
  826. (* $POP*)
  827.  
  828.  END TextEdit.
  829.